package com.vic.designpattern.patterns.c_behavioral.iterator.my;

import java.util.Iterator;

/**
 * MyCollection: 具体聚合类
 * @author victor
 */
public class MyCollection<E> implements Iterable<E> {

    // 存放元素的集合
    Object[] elementData;

    // 定义一些操作 elementData 的方法
    // add, remove, iterator

    /**
     * 返回迭代器
     * @return
     */
    @Override
    public Iterator iterator() {
        return new MyIterator();
    }

    /**
     * Iterator: 抽象迭代器
     * MyIterator: 具体迭代器
     */
    private class MyIterator implements Iterator {

        @Override
        public boolean hasNext() {
            // 对 elementData 操作
            return false;
        }

        @Override
        public Object next() {
            // 对 elementData 操作
            return null;
        }
    }
}
